/*!
\copyright  Copyright (c) 2023 Qualcomm Technologies International, Ltd.
            All Rights Reserved.
            Qualcomm Technologies International, Ltd. Confidential and Proprietary.
\file
\brief      Interface to a generic source.

            Implementation of this interface is mandatory to use Audio Stack
*/

#ifndef GENERIC_SOURCE_AUDIO_STACK_INTERFACE_H_
#define GENERIC_SOURCE_AUDIO_STACK_INTERFACE_H_

#include <source_param_types.h>

typedef struct
{
    bool (*GetUseCasePrepareParams)(generic_source_t source, source_defined_params_t *source_params);
    void (*ReleaseUseCasePrepareParams)(generic_source_t source, source_defined_params_t *source_params);
    bool (*GetUseCaseStartParams)(generic_source_t source, source_defined_params_t *source_params);
    void (*ReleaseUseCaseStartParams)(generic_source_t source, source_defined_params_t *source_params);
    bool (*GetUseCaseStopParams)(generic_source_t source, source_defined_params_t *source_params);
    void (*ReleaseUseCaseStopParams)(generic_source_t source, source_defined_params_t *source_params);
} generic_source_audio_stack_if;

#endif /* GENERIC_SOURCE_AUDIO_STACK_INTERFACE_H_ */
